<script setup>
import { defineProps, computed } from 'vue'
const props = defineProps({
  name: {
    type: String,
    required: true
  },

  //    图标的颜色
  color: {
    type: String,
    default: ''
  },

  //   图标的大小
  size: {
    type: [Number, String],
    default: 14
  }
})

//  使用计算属性 接受 props 传递的name  为了保证数据能够及时响应
const iconName = computed(() => `#${props.name}`)

// 给我们svg 添加类名  会将我们的图标也变成class名
const svgClass = computed(() => {
  console.log(props.name, 'props.name')
  if (props.name) {
    return `svg-icon ${props.name}`
  }
  return 'svg-icon'
})
</script>
<template>
  <svg
    :class="svgClass"
    :style="{
      width: size + 'px',
      height: size + 'px'
    }"
  >
    <use :xlink:href="iconName" :fill="color" />
  </svg>
</template>
<style scoped>
.svg-icon {
  fill: currentColor;
  vertical-align: middle;
}
</style>
